<script setup>

import {ref} from 'vue'
import {getConMyFileInfo} from "@/api/contract/contractFile.js";
import pdfCtrlUtil from "@/plugins/pageoffice/pageoffice-pdf.js";
import PageOfficeFile from "@/components/PageOfficeFile/index.vue";

const poHtml = ref('')
const isEdit = ref(false)
let conId = undefined
//组装控件所需的自定义按钮的参数,
// 数组的第一个元素： 按钮的标题（如果设置为 "-"，表示此按钮是分隔线）；第二个元素： 点击当前按钮时触发的 JavaScript 函数名；第一个元素： 按钮图标的索引；
//组装pdf控件所需的自定义按钮参数
const customButtonsForPDF = [
  ["保存", "save", 1],
  ["另存为", "saveAsFile", 0],
  ["盖章", "addSeal", 2],
  ["打印", "printFile", 6],
  ["导出扫描件", "exportToPDF", 6],
  ["-", "", 0]
]

onMounted(() => {
  //获取pageoffice客户端传过来的参数
  conId = JSON.parse(pdfctrl.WindowParams)
  getFile()
})

function getFile() {
  getConMyFileInfo(conId).then(result => {
    poHtml.value = result.html
    isEdit.value = result.isEdit
    //挂载PDFCtrl 控件需要调用的函数，例如控件触发的事件、自定义按钮触发的函数等。
    pdfCtrlUtil.jsFunctionMounted(customJSFunctionsForPDF, customButtonsForPDF)
  })
}

const customJSFunctionsForPDF = {
  //重写 OnPDFCtrlInit 事件
  OnPDFCtrlInit: () => {
    // 添加自定义按钮
    pdfCtrlUtil.addCustomButtons(isEdit.value ? customButtonsForPDF : null)
  },
  //部分自定义按钮执行的js函数
  save: () => {
    //设置保存地址
    pdfctrl.SaveFilePage = '/con/my/updateSignFile/' + conId
    //执行保存
    pdfctrl.WebSave()
    //服务端返回保存结果
    let strCustomSaveResult = pdfctrl.CustomSaveResult
    if ('ok' === strCustomSaveResult) {
      pdfCtrlUtil.msgSuccess('保存成功')
    }
  }
}

</script>

<template>
  <PageOfficeFile :poHtml="poHtml"/>
</template>

